AzureのJust-In-Time VMアクセス機能により一時的なSSHのポート開放を試してみた
Azure AD の Microsoft Defender for Cloud には、一時的に VM へのアクセスを許可する Just-In-Time VM アクセス機能があります。
Microsoft Defender for Cloud での Just-In-Time 仮想マシン アクセスについて | Microsoft Learn
今回のブログでは Ubuntu の VM に対して、一時的に送信元 IP アドレスを制限した SSH のポート開放を試してみました。
試してみた
Just-In-Time VM アクセスの設定方法は次のドキュメントで紹介されています。
Microsoft Defender for Cloud での Just-In-Time 仮想マシン アクセス | Microsoft Learn
今回の前提として、Microsoft Defender for Cloud は有効化済みの環境であり、Microsoft Defender プランです。
また、Just-In-Time VM アクセスを試す Ubuntu の VM は構築済みの状態からスタートします。NSG の受信ポートの規則は次の通り、SSH は設定していない状態です。
Just-In-Time VM アクセス機能は VM サービスから有効化できます。
Just-In-Time VM アクセスを利用したい VM の「構成」メニューから「Just-In-Time を有効にする」を実行します。
有効化後に「Microsoft Defender for Cloud を開く」をクリックします。
Just-In-Time VM アクセスの画面に遷移するため、アクセスを許可したい VM を選択して「アクセス権の要求」を実行します。
許可する IP アドレス範囲と時間を選択と理由の入力を行い、「ポートを開く」を実行します。今回は 2 時間の開放としています。
要求が完了してから最終アクセス日時を確認すると、現在アクティブであることが分かります。
VM に SSH で接続したところ、ログインできました(ログイン時のメッセージは省略しています)。
% ssh [email protected] -i key.pem azureuser@test-vm:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.5 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
Just-In-Time VM アクセスを利用すると VM の NSG が書き換えられていました。下記画像はアクティブなときの NSG ですが、有効化前と比べて優先度100
と4096
のルールが追加されています。22 番ポートを許可しているルールのソースは、Just-In-Time VM アクセスの設定で指定した IP アドレス範囲となっています。
Just-In-Time VM アクセスのアクティビティログを確認することもできます。
さいごに
AZ-500 の勉強をしており、自身の復習も兼ねて Just-In-Time VM アクセス機能を試してみました。
このブログがどなたかのご参考になれば幸いです。